package model;



public class CUT {
	private static final ConstructorDeclared[] NO_CONSTRUCTORS = new ConstructorDeclared[0];
	private static final PublicFieldDeclared[] NO_FIELDS = new PublicFieldDeclared[0];
	private static final MethodDeclared[] NO_METHODS = new MethodDeclared[0];
	private static final ConstantDeclared[] NO_Constants = new ConstantDeclared[0];
	private  PublicFieldDeclared[] fields=NO_FIELDS;
	private MethodDeclared[] methods = NO_METHODS;
	private ConstructorDeclared[] constructors = NO_CONSTRUCTORS;
	private  ConstantDeclared[] constants = NO_Constants;
	private Class<?> clazz;
	public CUT(Class<?> clazz,ConstructorDeclared[] constructors,PublicFieldDeclared[] fields,MethodDeclared[] methods,ConstantDeclared[] constants){
		this.clazz=clazz;
		this.fields=fields;
		this.methods = methods;
		this.constructors = constructors;
		this.constants=constants;
	}
	  public static CUT getConstructor(Class<?> clazz,ConstructorDeclared[] constructors,PublicFieldDeclared[] fields,MethodDeclared[] methodToTest,ConstantDeclared[] constants) {
		    return new CUT( clazz,constructors,fields,methodToTest,constants);
		  }
	  public static CUT getConstructor(Class<?> clazz,PublicFieldDeclared[] fields,MethodDeclared[] methodToTest,ConstantDeclared[] constants) {
		    return new CUT( clazz,NO_CONSTRUCTORS,fields,methodToTest,constants);
		  }
		public Class<?> getClazz(){
			return this.clazz;
		}
		public ConstructorDeclared[] getConstructors() {
			return constructors;
		}
		public PublicFieldDeclared[] getFields() {
			return fields;
		}

		public MethodDeclared[] getMethods() {
			return methods;
		}
		public ConstantDeclared[] getConstants() {
			return constants;
		}

}
